pub const BSL_UIM_NONE: BSL_UI_MethodTypes = 0;
pub const BSL_UIM_OPEN: BSL_UI_MethodTypes = 1;
pub const BSL_UIM_WRITE: BSL_UI_MethodTypes = 2;
pub const BSL_UIM_READ: BSL_UI_MethodTypes = 3;
pub const BSL_UIM_CLOSE: BSL_UI_MethodTypes = 4;
pub type BSL_UI_MethodTypes = ::std::os::raw::c_uint;
pub const BSL_UI_DATA_NONE: BSL_UI_DataTypes = 0;
pub const BSL_UI_DATA_READ: BSL_UI_DataTypes = 1;
pub const BSL_UI_DATA_WRITE: BSL_UI_DataTypes = 2;
pub type BSL_UI_DataTypes = ::std::os::raw::c_uint;
pub const BSL_UI_DATA_FLAG_NONE: BSL_UI_DataFlags = 0;
pub const BSL_UI_DATA_FLAG_ECHO: BSL_UI_DataFlags = 1;
pub const BSL_UI_DATA_FLAG_USER: BSL_UI_DataFlags = 65536;
pub type BSL_UI_DataFlags = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BSL_UI_CtrlRGetParam {
    pub flags: u32,
    pub buff: *mut ::std::os::raw::c_char,
    pub buffLen: u32,
    pub verifyBuff: *mut ::std::os::raw::c_char,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BSL_UI_ReadPwdParam {
    pub desc: *const ::std::os::raw::c_char,
    pub name: *const ::std::os::raw::c_char,
    pub verify: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UI_Control {
    _unused: [u8; 0],
}
pub type BSL_UI = UI_Control;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UI_ControlMethod {
    _unused: [u8; 0],
}
pub type BSL_UI_Method = UI_ControlMethod;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UI_ControlDataPack {
    _unused: [u8; 0],
}
pub type BSL_UI_DataPack = UI_ControlDataPack;
pub type BSL_UI_Open = ::std::option::Option<unsafe extern "C" fn(ui: *mut BSL_UI) -> i32>;
pub type BSL_UI_Write =
    ::std::option::Option<unsafe extern "C" fn(ui: *mut BSL_UI, data: *mut BSL_UI_DataPack) -> i32>;
pub type BSL_UI_Read =
    ::std::option::Option<unsafe extern "C" fn(ui: *mut BSL_UI, data: *mut BSL_UI_DataPack) -> i32>;
pub type BSL_UI_Close = ::std::option::Option<unsafe extern "C" fn(ui: *mut BSL_UI) -> i32>;
pub type BSL_UI_CheckDataCallBack = ::std::option::Option<
    unsafe extern "C" fn(
        ui: *mut BSL_UI,
        buff: *mut ::std::os::raw::c_char,
        buffLen: u32,
        callBackData: *mut ::std::os::raw::c_void,
    ) -> i32,
>;
unsafe extern "C" {
    pub fn BSL_UI_New(method: *const BSL_UI_Method) -> *mut BSL_UI;
}
unsafe extern "C" {
    pub fn BSL_UI_Free(ui: *mut BSL_UI);
}
unsafe extern "C" {
    pub fn BSL_UI_MethodNew() -> *mut BSL_UI_Method;
}
unsafe extern "C" {
    pub fn BSL_UI_MethodFree(method: *mut BSL_UI_Method);
}
unsafe extern "C" {
    pub fn BSL_UI_GetOperMethod(ui: *const BSL_UI) -> *const BSL_UI_Method;
}
unsafe extern "C" {
    pub fn BSL_UI_SetMethod(
        method: *mut BSL_UI_Method,
        type_: u8,
        func: *mut ::std::os::raw::c_void,
    ) -> i32;
}
unsafe extern "C" {
    pub fn BSL_UI_GetMethod(
        method: *const BSL_UI_Method,
        type_: u8,
        func: *mut *mut ::std::os::raw::c_void,
    ) -> i32;
}
unsafe extern "C" {
    pub fn BSL_UI_ReadPwdUtil(
        param: *mut BSL_UI_ReadPwdParam,
        buff: *mut ::std::os::raw::c_char,
        buffLen: *mut u32,
        checkDataCallBack: BSL_UI_CheckDataCallBack,
        callBackData: *mut ::std::os::raw::c_void,
    ) -> i32;
}
unsafe extern "C" {
    pub fn BSL_UI_DataPackNew() -> *mut BSL_UI_DataPack;
}
unsafe extern "C" {
    pub fn BSL_UI_DataPackFree(data: *mut BSL_UI_DataPack);
}
unsafe extern "C" {
    pub fn BSL_UI_DataCtrl(
        data: *mut BSL_UI_DataPack,
        type_: u32,
        parg: *mut ::std::os::raw::c_void,
        larg: u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn BSL_UI_GetDataResult(
        data: *mut BSL_UI_DataPack,
        result: *mut *mut ::std::os::raw::c_char,
        resultLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn BSL_UI_ConstructPrompt(
        objectDesc: *const ::std::os::raw::c_char,
        objectName: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
